package lanqiao._02算法训练.page02;

import java.util.Scanner;

/**
 * @author 挚爱之夕
 * @version 1.0
 * @implSpec
 * 问题描述
 * 　　给出一个正整数n，求一个和最大的序列a0，a1，a2，……，ap，
 * 满足n=a0>a1>a2>……>ap且ai+1是ai的约数，输出a1+a2+……+ap的最大值
 * 输入格式
 * 　　输入仅一行，包含一个正整数n
 * 输出格式
 * 　　一个正整数，表示最大的序列和，即a1+a2+……+ap的最大值
 * 样例输入
 * 10
 * 样例输出
 * 6
 * 数据规模和约定
 * 　　1<n<=10^6
 * 样例说明
 * 　　p=2
 * 　　a0=10，a1=5，a2=1，6=5+1
 *
 * 思路：
 * 找比当前数小的最大约数，能保证和最大
 * @since 2022 - 10 - 31 - 22:43
 */
public class _13最大分解 {
}
class Main13{
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        int x = get(n);
        int sum = x;
        while(x != 1){
            x = get(x);
            //累加和
            sum += x;
        }
        System.out.println(sum);
    }
    //找比num 小的最大约数
    static int get(int num){
        int p = num - 1;
        while(p > 1){
            if(num % p == 0) break;
            p--;
        }
        return p;
    }
}